
#ifndef APP_BUTTON_H
#define APP_BUTTON_H

#include "gpio.h"
#include "main.h"

// 定义按钮数量
#define BUTTON_COUNT 3

// 按钮状态枚举
typedef enum {
    BUTTON_RELEASED = 0, // 按钮未按下
    BUTTON_PRESSED       // 按钮按下
} ButtonState;

// 外部声明按钮状态数组，存储每个按钮的当前状态
extern ButtonState button_states[BUTTON_COUNT];

/**
 * @brief 初始化按钮相关的硬件配置。
 * 
 * 该函数应在主程序初始化阶段调用，用于配置 GPIO 引脚。
 */
void app_button_init(void);

/**
 * @brief 检测按钮的状态变化。
 * 
 * 该函数会轮询所有按钮的状态，并更新全局按钮状态数组。
 * 应在主程序的主循环中定期调用。
 */
void app_button_detect(void);

#endif // APP_BUTTON_H

